Делаю библиотеку (назовём это так) для построения кастомных индексов. Ну типа есть n акций — собираем из них индекс. Никаких излишних заморачиваний, никаких переусложнений — скорее всего задаёшь набор тикеров, на выходе таймсерия индекса как median от изменений компонентов, что-то такое. Без взвешиваний. Медиана защитит от выбросов. Целевое применение — американские акции. По каким критериям буду собирать индексы — самое простое — отрасль сектор, дальше можно по уровню капитализации, опять таки не хочу заморачиваться — цена * volume как мера капитализации. Можно начать с этого можно на пересечениях признаков собирать индексы механизм будет такой, что вот тикеры, вот признаки тикеров, собираешь по каким хочешь критериям набор тикеров, подаешь на вход и либа строит индекс. Единственное ограничение — размер выборки тикеров после фильтрации по критериям. Ну типа из 3-х инструментов индекс, вероятно так себе, а может и полезен — надо смотреть.
Следующий уровень «абстракции» — что делать с индексами. Смотреть как на самостоятельные штуки, смотреть как на «факторы», на которые распадается конкретный тикер. Спреды, корреляции.
В какой-то момент многие алго-трейдеры сходятся к неким «столпам» алго-трейдинга – принципам, которые работают. Когда ты до этих принципов дошел, придерживаться их безопасно, потому что ты не пускаешься в странные авантюры, странные направления исследований и прочее. Но все ли столпы алго-трейдинга так хороши.
Возьмём, казалось бы, незыблемый столп: стратегии нужно объединять в портфели стратегий, и чем менее скоррелированный стратегии в портфеле, тем лучше.
Дальше скорее рассуждения на тему, чем усомнение в, посмотрим как пойдёт)…
На чем основан постулат:
Набиваешь нескоррелированные стратегии в портфель -> /*какая-то математическая логика за этим эффектом*/ -> У такого портфеля метрики будут лучше, чем в среднем у участников портфеля. Ну например в форме: меньше просадка при одинаковой доходности. Берем выше плечо, получаем большую доходность при одинаковой просадке. Ну или используем это в соответствии со своим риск-аппетитом. Красота? – Красота. Так и работает на практике? – Так и работает на практике.
Ничего конкретного, так, локальный поток мыслей.
Немножко стриггерено соседними постами про AI, убивающий алго, или трейдинг в целом, или рынок, не помню уже.
Буду стараться, говоря про AI оперировать понятием LLM, это намного предметней.
Исчезнет ли возможность зарабатывать на рынке в течение 10 лет — думаю, нет. Исчезнет ли рынок в течение 10 лет – думаю нет. Станет ли зарабатывать сложнее (в другой формулировке: станет ли рынок эффективней) – думаю, да, это общий тренд, он и до LLM был. Другое дело, что, возможно, не корректно оценивать просто эффективность рынка в вакууме. Корректно оценивать эффективность в контексте имеющихся технологий и знаний, с этой точки зрения эта некая «относительная эффективность» вероятна колеблется в районе константы. Другими словами, ты просто используешь другие технологии, подходы, концепции, вычислительные мощности для извлечения эджа, это делает твои действия в абсолютном значении намного более эффективными, но в относительном ты, по сути, стоишь на месте.
Т.е. сейчас даже не про просеивание, фильтрацию информации ручными трейдерами – ну там: в топку телеграм-каналы, горы индикаторов на графике, обзоры аналитиков и прочую фигню.
Сейчас про алгоритмических трейдеров.
У них тоже есть свой информационный шум. И свои стратегии взаимодействия с этим шумом.
Какой вообще есть шум и на что он влияет. Что нужно алго-трейдеру – идеи стратегий… да кого я обманываю, им не нужны идеи – им нужны в конечном счете стратегии. Второе что нужно – идея, решения по улучшению процессов, общей эффективности – т.е. мета-улучшения, ну там – чуть лучшие способы защиты от переподгонки, чуть более эффективные способы собирать стратегии в портфели и т.д. Дальше алго-трейдер берет информацию в оборот, обычно экспериментирует и дальше что-то внедряет если нашел что-то ценное.
И что может «шуметь» в охоте за данными кусками ценной информации?
Попробую обобщить, классифицировать:
— Нетематическая информация – зашел на условный Смарт-лаб, ожидая трейдерский контент, получил много политики, много ещё чего-то, что как алго-трейдеру тебе почти ничего не даёт (может где-то что-то дать, но соотношение шум/«сигнал» будет очень неблагоприятное).
Взяли в руки блокнотики?))
Грааль в ML для трейдинга состоит из нескольких компонентов. По сути грааль, это «правильные» ответы на вопросы:
Пожалуй, можно составить ТОП покороче:
Имею в виду в моменте и автоматически.
Кто-то так вообще делает? Вот буквально, что у твоей стратегии не N денег в распоряжении, у второй N1, у третьей N2 и т.д., где N1 == N или N1 != N и т.д. А у тебя всего N денег в распоряжении и стратегии сами как-то разруливают эту историю. Без анархии, конечно, но как-то смарт и по-хитрому.
Сразу же возникло много вопросов по логике организации такой системы, подумал: надо сторонний опыт заценить и понял, что, вроде, ничего о подобном не слышал.
Ретроспективно — обычно «руками» заглянуть в историю — перераздать лимиты денег — да, как-то так делают.
Хочется как-то так: если стратегия, по ожиданиям, будет хорошо перформить и/или сигнал какой-то особо мощный — чтоб система могла перетянуть одеяло. Но в то же время надо чтоб кто-то один не перетягивал на себя всё одеяло, какой бы крутой он не был. В общем смарт челлендж вырисовывается, хочется для начала осмотреться по сторонам прежде чем что-то делать. Хотя по устоявшейся уже привычке точно не буду делать какого-то неповоротливого мастодонта, начну с простенького MVP.
Прокрастинировать тоже надо правильно. В алго не все задачи вау-интересные, много рутины, иногда хочется сменить пластинку. Отлично на эту роль подходит какой-нибудь креативный рисёч. Важно, чтобы было не слишком затратно по усилиям, иначе завязнешь, тоже станет скучно и т.д. При этом тема рисёча должна быть интересной, нестандартной или мотивирующей. В этот раз в качестве такого отвлечения решил погрызть извечный грааль алгостроения – прогнозирование состояния рынка.Думаю, вы знаете, что на рынке есть такие состояния, при которых любые (ну не любые, конечно) стратегии начинают хорошо перформить. И поэтому, умея прогнозировать такие состояния, ты как бы накачиваешь все свои стратегии стероидами.
По-быстрому без изысков определил как чё буду делать, на что смотреть (назовём это предикторами) и как измерять эффект. В принципе первые же предположения сработали. Но до грааля далеко. Эффект (for fun) получен, результат (и задел на будущее получен), дальше можно возвращаться, улучшать, развивать, ветвить рисёч.
В алгоритмической торговле много аспектов и много чем можно заниматься для улучшения результата. Интересно, кто в каких пропорциях время распределяет.
Как алготрейдеру сразу, конечно, хочется факторы вычленить, закономерности построить, посмотреть как распределение времени на результаты влияет, эксперимент спроектировать и провести. Но тут так, конечно, не выйдет), но просто послушать всё равно очень интересно. Интересно не чем в моменте занимаешься, а на каком-то скользящем окне помасштабней понять как усилия распределяется. Основной фактор, думаю, тут стадия жизненного цикла трейдера, но и в пределах стадии всё равно разброс на основе индивидуальных предпочтений приличный.
Я долго в инфраструктуру усилия вкладывал, потом в рисёч стратегий, щас основной упор в мета-исследования – исследования, положительный результат в которых аффектит эффективность всего процесса и всех/большинства стратегий. Наверно, процентов 60 этим занимаюсь, 30 – рисёч и написание стратегий, 10 – инфраструктуру допиливаю по необходимости.
Инфраструктурно меня конкретно штормило раньше). Видимо, строить инфраструктуру (где-то в глубинах внутренних предпочтений) мне ничуть не менее интересно, чем рисёчить стратегии. Поштормило-поштормило, да подотпустило. Зато теперь у меня внутри нет никакой недосказанности вида «а что если своё попробовать написать», «а что если готовую вот эту специализированную взять» и прочих. Лучше жалеть о то, что сделал… и я делал)).
Сейчас самописная инфрастуктура. Не разраб, не кодер, не архитектор, но кой какие-то принципы усвоил – какие-то из своего опыта вынес, какие-то из курсов или ещё откуда. Соблюдение банальной IT гигиены на порядки облегчает жизнь. Пример: раньше мог запилить коннектор какой-нибудь, который корнями врастал в остальную часть инфраструктуры и чтобы заменить его на другой коннектор, если понадобится, приходится выкорчёвывать, а это долго, сложно и отличный повод запустить прокрастинационный цикл. А надо-то, банально, написать базовый класс и, много не надо, буквально несколькими с указанием сигнатур, дальше от этого класса наследоваться – всё.
Скачал с этих страниц списки американских акций
https://stockanalysis.com/list/nyse-stocks/
https://stockanalysis.com/list/nasdaq-stocks/
Запустил бэктестер, он последовательно проходит по бумагам — бэктестит одну, потом к следующей переходит и т.д., после каждой выводит результаты по бумаге и накопительные. Ну и я иногда поглядываю на процесс, смотрю нарисовались какие-то средние метрики после некоторого кол-во отбэктесченных бумаг, потом смотрю PF плюс минус стабильно стал падать и падать и падать, думаю ну кто его там этот рандом поймёт, но, подозрительно, в начале процесса бумаги выдавали стабильно 1.7-2.0 PF, а тут чёт всё больше вокруг 1.1-1.2 стали плясать и тоже подозрительно стабильно. В какой-то момент, смотрю, накопленные метрики начали расти опять, присмотрелся, средний бэктест опять ближе к 1.7-2.0. Ага, я положил список с NYSE тикерами, а справа прилепил Nasdaq и понимаю, что этот скачок был связан с переходом между биржами. Сомнений нет, это не просто рандом – пора идти смотреть, по какому принципу тикеры отсортированы, чувствую, не по алфавиту. Так и есть – по капитализации.